# Maintainer: George Rawlinson <grawlinson@archlinux.org>

pkgname=bat-extras
pkgver=2023.03.21.r2.ge609d1a
pkgrel=1
pkgdesc='Bash scripts that integrate bat with various command line tools'
arch=('any')
url='https://github.com/eth-p/bat-extras'
license=('MIT')
depends=(
  'bat'
  'bash'
  'git'
  'ripgrep'
  'man'
)
makedepends=('shfmt')
checkdepends=('fish')
optdepends=(
  'ncurses: optional for batdiff script'
  'git-delta: optional for batdiff script'
  'fzf: optional for batman script'
  'exa: optional for batpipe script'
  'entr: optional for batwatch script'
  'prettier: various code formatting for prettybat script'
  'shfmt: bash formatting for prettybat script'
  'rustfmt: Rust formatting for prettybat script'
  'clang: C / C++ / Objective-C formatting for prettybat script'
  'python-black: Python formatting for prettybat script'
)
_commit='e609d1a2c537ec02c3ea4cdd0fc12a080d938076'
source=(
  "git+https://github.com/eth-p/bat-extras.git#commit=$_commit"
  'github.com-eth-p-best::git+https://github.com/eth-p/best.git'
  'github.com-eth-p-best-tests::git+https://github.com/eth-p/best-tests.git'
)
b2sums=('SKIP'
        'SKIP'
        'SKIP')

pkgver() {
  cd "$pkgname"

  git describe --tags | \
    sed -e 's/^v//' \
    -e 's/\([^-]*-g\)/r\1/' \
    -e 's/-/./g'
}

prepare(){
  cd "$pkgname"

  # setup submodules
  git submodule init
  git config submodule.best.url "$srcdir/github.com-eth-p-best"
  git -c protocol.file.allow=always submodule update

  pushd .test-framework
  git submodule init
  git config submodule.best-tests.url "$srcdir/github.com-eth-p-best-tests"
  git -c protocol.file.allow=always submodule update
  popd

  # fix incorrect version string using commit date
  # https://github.com/eth-p/bat-extras/issues/68
  git show --no-patch --format=%cd --date=format:%Y.%m.%d > version.txt
}

check() {
  cd "$pkgname"

  ./test.sh --verbose --strict --snapshot:show
}

package() {
  cd "$pkgname"

  # scripts
  ./build.sh \
    --prefix="$pkgdir/usr" \
    --install

  # documentation
  install -vDm644 -t "$pkgdir/usr/share/doc/$pkgname" \
    CONTRIBUTING.md README.md doc/*

  # man pages
  install -vDm644 -t "$pkgdir/usr/share/man/man1" man/*

  # license
  install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE.md
}
